New saturation process for ImageFX 2.x, by Neil Huggett, Adelaide, South Australia (24-1-99).
Tested using ImageFX 2.1a, on an Amiga 1200. (Doesn't require more memory than other ImageFX processes).
Freeware!!! Thanks to Nova Design for their development pack!
Process Version: 1.0
Having ImageFX 2.1a, I was very happy with most of what the program could do. However, I was always dissatisfied with the results I obtained from using the saturation command within the program. I found myself using a magazine cover-mounted version of "Photogenics" to increase the saturation within an image instead. This wasn't overly satisfactory either: having to jump programs wasn't very fluent, and the result in Photogenics wasn't marvellous either.
After finding the ImageFX 2.0 Development pack, I decided to try and put together my own Saturation hook. However, I have Blitz Basic, and not a C compiler, so I found it hard to work out how to use a lot of the information supplied in the development pack.
My resulting solution does produce very good results (much better than ImageFX 2.1a and Photogenics 1.2a), but does have a number of limitations/problems:
1) It is run from an arexx script - you need to be running Arexx.
2) It doesn't respond to selected working regions - it works on the whole of the main buffer only.
3) There is no preview, so you are relying on guesswork for amounts of changes.
4) You can only cancel the process when presented with the "saturation amount" requester, and not during the calculations.
5) It is a little slow, but not nearly as slow as an arexx script for the whole algorithm!!
I would be quite happy to work on these problems, but I'd need some help (see below).
Installation - shouldn't be too difficult.
1) Put the executable program called "Saturate" into your "sys:Utilities" drawer, or your "sys:C" drawer (so that it always has a command path).
2) Then put the arexx script "Saturation.ifx" into the "rexx" drawer of your ImageFX program installation. You are then ready to roll...
Using the new saturation process:
1) Load an image into the main buffer of ImageFX 2.x.
2) Click on the Arexx button, on the Toolbox screen. Select "Saturation.ifx" from your list of arexx scripts. It will then show the main buffer size in the arexx message bar, and pop a requester for you to select the amount of saturation change, as a percentage. This relates to the amount of "colour" from an average grey for each pixel of the current image. For example, a value of 100% will add 100% of the current colour saturation, or double the "saturation of colour" in your image. A value of 0 will make no change, a value of -100% will desaturate the image completely, a value of <-100% will start reversing the hue of each pixel colour. For best results, use a value between -100% and 200%. Click on OK and the rest of the operation will go through until completed. The process saves an undo copy of the image, so you can undo any changes.
What's going on? (why the two parts?)
The executable program ("Saturate") is a compiled blitz basic executable, where all of the saturation algorithm is carried out. The only info I couldn't get for using Blitz was the size of the main buffer. The arexx script gets the width and height of the main buffer and passes these to the blitz executable.
I know, it's not elegant, but it works!
The Help I would need if I was to improve this program dramatically:
1) I would like to be able to use my algorithm within the EasyProcess() function [within ImageFX's "scan.library"] using Blitz Basic, or have the whole thing converted to the C language. This way, all feathering settings, image area settings, etc. are all taken into account.
I think this would also negate the need to find out the dimensions of the main buffer.
2) It would be nice to have a preview screen, so that you get a better idea of the result before setting it going.
If you have any comments, or if you would like the Blitz source, I can be emailed at: neil_huggett@geocities.com
Please have a look at my web site (personal art gallery), at: